﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using com.creditos.be.liclBases;
using com.creditos.be.liclEntities;
using com.creditos.be.liclSolcred;
using com.creditos.be.liclUtil;

namespace LiclBases.Views
{
    public class FormsManReglasCentralRiesgoPresenter : Viewer<IFormsManReglasCentralRiesgoView>
    {
        LiclBasesPController oController = new LiclBasesPController();
        public FormsManReglasCentralRiesgoPresenter()
        { 
        
        }


        public void LoadManRegla()
        {
            ListarReglaCentralRiesgo(964);//Tipo Regla Evaluación
        }

        public void LoadPopupRegla()
        {
            ListarReglaCentralRiesgo(973);//Tipo Integrante
            ListarReglaCentralRiesgo(888);//Periodo Evaluación
            ListarReglaCentralRiesgo(983);//Resultado
            ListarReglaCentralRiesgo(230);//Operador Lógico
            ListarReglaCentralRiesgo(981);//Conector
            ListarReglaCentralRiesgo(968);//Tipo de Variable   
            ListarVariables();//Lista Variables
        }

        

        public void ListarReglaCentralRiesgo(int intCodigoTabla)
        {
            try
            {
                List<ParametroBE> lstParametro = new List<ParametroBE>();
                lstParametro = oController.ListarParametros(new ParametroBE { CodigoTabla = intCodigoTabla });
                View.CargarParametros(lstParametro);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
      
        public void ListarVariables()
        {
            try
            {
                List<ReglaCentralRiesgo> lstVariable = new List<ReglaCentralRiesgo>();
                lstVariable = oController.ListarVariables();
                View.CargarVariables(lstVariable);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public int ActualizarPoliticaCredito(ReglaCentralRiesgo oReglaCentral)
        {
            List<ReglaCentralRiesgo> lst = new List<ReglaCentralRiesgo>();
            try
            {

                lst = oController.ActualizarPoliticaCredito(oReglaCentral);
                View.ObtenerPoliticaCredito(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
            return lst[0].CodigoPlantilla;
        }
        public void ActualizarReglaNegocio(ReglaCentralRiesgo oReglaCentral)
        {
            try
            {
                oController.ActualizarReglaNegocio(oReglaCentral);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ActualizarReglaNegocioCondicion(ReglaCentralRiesgo oReglaCentral)
        {
            try
            {
                oController.ActualizarReglaNegocioCondicion(oReglaCentral);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

        public void ObtenerPoliticaCredito(ReglaCentralRiesgo oReglaCentral)
        {
            List<CentralRiesgoBE> lst = new List<CentralRiesgoBE>();
            try
            {

                lst = oController.ObtenerPoliticaCredito(oReglaCentral);
                View.ObtenerPoliticaCreditoCabecera(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }          
        }
        public void ObtenerReglaNegocio(ReglaCentralRiesgo oReglaCentral)
        {
            List<ReglaCentralRiesgo> lst = new List<ReglaCentralRiesgo>();
            try
            {
                lst = oController.ObtenerReglaNegocio(oReglaCentral);
                View.ObtenerReglaNegocio(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }
        public void ObtenerReglaNegocioCondicion(ReglaCentralRiesgo oReglaCentral)
        {
            List<ReglaCentralRiesgo> lst = new List<ReglaCentralRiesgo>();
            try
            {
                lst = oController.ObtenerReglaNegocioCondicion(oReglaCentral);
                View.ObtenerReglaNegocioCondicion(lst);
            }
            catch (Exception ex)
            {
                View.MostrarMensajeError(ex.Message);
            }
        }

    }
}
